home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / doc / python-apt / examples / depcache.py < prev    next >
Encoding:
Python Source  |  2009-03-30  |  3.3 KB  |  111 lines

  1. #!/usr/bin/python
  2. # example how to deal with the depcache
  3.  
  4. import apt
  5. import apt_pkg
  6. import sys
  7. import copy
  8. from progress import TextProgress
  9.  
  10.  
  11. # init
  12. apt_pkg.init()
  13.  
  14. progress = TextProgress()
  15. cache = apt_pkg.GetCache(progress)
  16. print "Available packages: %s " % cache.PackageCount
  17.  
  18. iter = cache["base-config"]
  19. print "example package iter: %s" % iter
  20.  
  21. # get depcache
  22. print "\n\n depcache"
  23. depcache = apt_pkg.GetDepCache(cache)
  24. depcache.ReadPinFile()
  25. # init is needed after the creation/pin file reading
  26. depcache.Init(progress)
  27. print "got a depcache: %s " % depcache
  28. print "Marked for install: %s " % depcache.InstCount
  29.  
  30. print "\n\n Reinit"
  31. depcache.Init(progress)
  32.  
  33. #sys.exit()
  34.  
  35.  
  36. # get a canidate version
  37. ver= depcache.GetCandidateVer(iter)
  38. print "Candidate version: %s " % ver
  39.  
  40. print "\n\nQuerry interface"
  41. print "%s.IsUpgradable(): %s" % (iter.Name, depcache.IsUpgradable(iter))
  42.  
  43. print "\nMarking interface"
  44. print "Marking '%s' for install" % iter.Name
  45. depcache.MarkInstall(iter)
  46. print "Install count: %s " % depcache.InstCount
  47. print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
  48. print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
  49. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  50.  
  51. print "Marking %s for delete" % iter.Name
  52. depcache.MarkDelete(iter)
  53. print "DelCount: %s " % depcache.DelCount
  54. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  55.  
  56.  
  57. iter = cache["3dchess"]
  58. print "\nMarking '%s' for install" % iter.Name
  59. depcache.MarkInstall(iter)
  60. print "Install count: %s " % depcache.InstCount
  61. print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
  62. print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
  63. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  64.  
  65. print "Marking %s for keep" % iter.Name
  66. depcache.MarkKeep(iter)
  67. print "Install: %s " % depcache.InstCount
  68.  
  69. iter = cache["synaptic"]
  70. print "\nMarking '%s' for install" % iter.Name
  71. depcache.MarkInstall(iter)
  72. print "Install: %s " % depcache.InstCount
  73. print "Broken count: %s" % depcache.BrokenCount
  74. print "FixBroken() "
  75. depcache.FixBroken()
  76. print "Broken count: %s" % depcache.BrokenCount
  77.  
  78. print "\nPerforming Upgrade"
  79. depcache.Upgrade()
  80. print "Keep: %s " % depcache.KeepCount
  81. print "Install: %s " % depcache.InstCount
  82. print "Delete: %s " % depcache.DelCount
  83. print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
  84. print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
  85.  
  86. for pkg in cache.Packages:
  87.     if pkg.CurrentVer is not None and not depcache.MarkedInstall(pkg) \
  88.         and depcache.IsUpgradable(pkg):
  89.         print "Upgrade didn't upgrade (kept): %s" % pkg.Name
  90.  
  91.  
  92. print "\nPerforming DistUpgrade"
  93. depcache.Upgrade(True)
  94. print "Keep: %s " % depcache.KeepCount
  95. print "Install: %s " % depcache.InstCount
  96. print "Delete: %s " % depcache.DelCount
  97. print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
  98. print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
  99.  
  100. # overview about what would happen
  101. for pkg in cache.Packages:
  102.     if depcache.MarkedInstall(pkg):
  103.         if pkg.CurrentVer is not None:
  104.             print "Marked upgrade: %s " % pkg.Name
  105.         else:
  106.             print "Marked install: %s" % pkg.Name
  107.     elif depcache.MarkedDelete(pkg):
  108.         print "Marked delete: %s" % pkg.Name
  109.     elif depcache.MarkedKeep(pkg):
  110.         print "Marked keep: %s" % pkg.Name
  111.